iT邦幫忙

2023 iThome 鐵人賽

DAY 3
1
自我挑戰組

用GPT 撰寫選股策略系列 第 3

用 chatgpt 學習使用 pinescript 撰寫交易策略 - Day 3

  • 分享至 

  • xImage
  •  

用 chatgpt 學習使用 pinescript 撰寫交易策略 - Day 3

簡介

透過 Pinescript 實現交叉移動平均線策略

策略

交叉移動平均線策略

策略介紹

交叉移動平均線策略是一種常用於技術分析的股市交易策略,用於判斷股價走勢的趨勢變化以及可能的進出點。這種策略主要基於移動平均線(Moving Average)的概念,通常使用兩條不同期間的移動平均線進行分析。

移動平均線是一種平滑的趨勢線,計算方法是將一段時間內的股價平均值作為當前時間點的移動平均值,隨著時間推移,這些平均值會連接形成一條曲線。在交叉移動平均線策略中,通常會使用兩條移動平均線,分別稱為快速移動平均線和慢速移動平均線。

具體策略步驟如下:

計算移動平均線: 首先,計算快速移動平均線和慢速移動平均線。快速移動平均線通常使用較短的時間期間(例如5日或10日),而慢速移動平均線則使用較長的時間期間(例如50日或200日)。

判斷交叉點: 監視快速移動平均線和慢速移動平均線之間的交叉點。當快速移動平均線由下方向上穿越慢速移動平均線時,稱為"黃金交叉",這暗示著可能的上升趨勢。相反,當快速移動平均線由上方向下穿越慢速移動平均線時,稱為"死亡交叉",這暗示著可能的下降趨勢。

交易信號: 根據交叉點的情況,制定交易策略。例如,當出現黃金交叉時,可能是買入信號,暗示著股價可能上漲,可以考慮進行買入操作。而死亡交叉則可能是賣出信號,暗示著股價可能下跌,可以考慮進行賣出操作。

交叉移動平均線策略雖然是一種常見的技術分析方法,但它並不保證一定能夠產生準確的交易信號,因為市場走勢受到多種因素的影響。交叉移動平均線策略通常需要結合其他技術指標、基本面分析等方法進行綜合判斷,以提高交易決策的準確性。

PineScript 實作

指標

//@version=5
indicator("交叉移動平均線策略", overlay=true)

// 設定快速移動平均線和慢速移動平均線的期間
fast_length = input(5, title="快速移動平均線期間")
slow_length = input(20, title="慢速移動平均線期間")

// 計算快速移動平均線和慢速移動平均線
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)

// 繪製快速移動平均線和慢速移動平均線
plot(fast_ma, title="快速移動平均線", color=color.blue)
plot(slow_ma, title="慢速移動平均線", color=color.red)

// 判斷交叉點
cross_above = ta.crossover(fast_ma, slow_ma)
cross_below = ta.crossunder(fast_ma, slow_ma)

// 繪製黃金交叉和死亡交叉箭頭
plotarrow(cross_above ? 1 : cross_below ? -1 : na, colorup=color.green, colordown=color.red, offset=-1)

策略

//@version=5
strategy("交叉移動平均線策略", overlay=true)

// 設定快速移動平均線和慢速移動平均線的期間
fast_length = input(5, title="快速移動平均線期間")
slow_length = input(20, title="慢速移動平均線期間")

// 計算快速移動平均線和慢速移動平均線
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)

// 判斷交叉點
cross_above = ta.crossover(fast_ma, slow_ma)
cross_below = ta.crossunder(fast_ma, slow_ma)

// 策略進出場條件
if cross_above
    strategy.entry("Buy", strategy.long)
if cross_below
    strategy.entry("Sell", strategy.short)

// 繪製交叉點箭頭
plotarrow(cross_above ? 1 : cross_below ? -1 : na, colorup=color.green, colordown=color.red, offset=-1)

回測結果

執行結果分析

察看收益

分析本金 1000 USD

淨利: 總淨利為132.45美元,相對於資本(已付佣金)的回報率為13.25%。

盈利因子: 盈利因子為1.822,這表明總體上獲利交易的利潤比虧損交易的損失要大。

勝率: 勝率為31.3%,表示大約三分之一的交易是盈利的。

夏普比率: 夏普比率為-0.44,這個值通常用來評估每承受單位風險所獲得的超額報酬,越高越好。負值可能表示風險調整後的回報不足。

Sortino比率: Sortino比率為-0.602,這是另一個風險調整的回報指標,負值表示風險調整後的回報不足。

總體而言,雖然總淨利較高,但夏普比率和Sortino比率的負值顯示風險調整後的回報可能不足以彌補風險。此外,勝率相對較低,這可能意味著需要進一步優化進出點,以提高策略的準確性。

圖表指向

結論

交叉移動平均線策略是一種簡單而有效的技術分析方法,用於識別資產價格趨勢的轉折點。然而,它應與其他指標和風險管理策略一起使用,以獲得更好的交易結果。


上一篇
如何使用 Pinescript 創建簡單的移動平均線策略 - Day 2
下一篇
用 chatgpt 學習使用 pinescript 撰寫交易策略 - Day 4
系列文
用GPT 撰寫選股策略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
sponge1220
iT邦新手 4 級 ‧ 2023-09-04 21:23:41

河河河河河

0
孤獨一隻雞
iT邦研究生 5 級 ‧ 2023-09-05 17:38:02

河河河河河

我要留言

立即登入留言